1. Field of the Invention
The present invention relates generally to the field of time synchronization of distributed processors. More particularly, the invention relates to the use of processor tick counter values to determine clock offsets to synchronize timing in networks of distributed processors.
2. Description of the Related Art
Accurate time-stamps and accurate timing synchronization are valuable for many different computing tasks in many environments. Current time synchronization protocols typically use the system clock of each computing resource for synchronization. The system clock is typically an independent component that resides on a system bus or a memory bus. The resolution of system clocks is determined by the interrupt cycle of the clock and is typically on the order of one to ten milliseconds. Accordingly, the accuracy of such a synchronization protocol is limited to the order of tens of milliseconds or at best milliseconds.
Higher accuracy can be useful in many different applications. An example of such an application is a network monitoring system which collects important network statistical information from different devices at specific instants in time. The statistics are typically time-stamped and correlated to determine important network characteristics such as latency, link capacity, communications bandwidth, jitter, loss, and interrupt activity. The more accurate the time-stamps, the more reliable the statistics will be. Some network management systems keep a log of events that occur on the distributed systems of the network. The log of events is typically time-stamped and can be very useful, for example, in order to allow a network administrator to infer a chain of events that has led to a particular failure. Higher timing accuracy allows the sequence of the events to be known with greater certainty. It can also facilitate a run-time series analysis at distributed centers. Another example is a networked file management system which requires file systems on the various networked devices to be synchronized and maintained consistent.
Another example of a system that can benefit from high accuracy synchronization is digital document certification. Such certificates can include a time stamp. More accurate time synchronization allows more precise criteria to be applied to the certification, enhancing the accuracy of the certification. Another example is encryption. Many encryption schemes require time-stamping. More accurate time-stamps result in greater encryption security.
Another application of accurate time synchronization is a distributed computing environment in which jobs are distributed among several processors that are networked together. For example a set of different processing engines such as ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), or microprocessors can be coupled together for parallel processing or distributed processing in a single computer, telecommunications device, network server, or mainframe. A more accurate time stamp allows the jobs to be more closely synchronized, increasing system throughput. The higher the accuracy of the synchronization, the more efficiently the concurrent tasks can be coordinated.